package entity;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

import javax.persistence.CascadeType;
import javax.persistence.Embedded;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
import javax.persistence.Table;
@Entity
@Table(name="Cliente")
public class ClienteEntity implements Serializable{
	
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	@Id
	@GeneratedValue(strategy=GenerationType.AUTO)
	private int idCliente;
	private String cuit;
	private String nombre;
	private String condicionIva;
	private boolean estado;
	@Embedded
	private DomicilioEntity domicilio;
	@ManyToMany (cascade=CascadeType.ALL, fetch = FetchType.EAGER)
	@JoinTable(name="Condicion_Cliente",joinColumns=@JoinColumn(name="idCliente"),inverseJoinColumns=@JoinColumn(name="idCondicion"))
	private List<CondicionCompraEntity> condicionCompra=new ArrayList<CondicionCompraEntity>();
	
	
	public String getCuit() {
		return cuit;
	}
	public ClienteEntity(){
		
	}
	public ClienteEntity(String cuit, String nombre,String condicionIva,List<CondicionCompraEntity> condi, DomicilioEntity domicilio) {
		this.cuit = cuit;
		this.nombre = nombre;
		this.condicionIva = condicionIva;
		this.estado=true;
		this.domicilio = domicilio;
		this.condicionCompra=condi;
	}
	public void setCuit(String cuit) {
		this.cuit = cuit;
	}
	public String getNombre() {
		return nombre;
	}
	public void setNombre(String nombre) {
		this.nombre = nombre;
	}
	public String getCondicionIva() {
		return condicionIva;
	}
	public void setCondicionIva(String condicionIva) {
		this.condicionIva = condicionIva;
	}
	public boolean isEstado() {
		return estado;
	}
	public void setEstado(boolean estado) {
		this.estado = estado;
	}
	public DomicilioEntity getDomicilio() {
		return domicilio;
	}
	public void setDomicilio(DomicilioEntity domicilio) {
		this.domicilio = domicilio;
	}
	public List<CondicionCompraEntity> getCondicionCompra() {
		return condicionCompra;
	}
	public void setCondicionCompra(List<CondicionCompraEntity> condicionCompra) {
		this.condicionCompra = condicionCompra;
	}
	
	public int getIdCliente() {
		return idCliente;
	}
	public void setIdCliente(int idCliente) {
		this.idCliente = idCliente;
	}

}
